/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package transervfx.Vista;

import java.net.URL;
import java.util.List;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.scene.control.CheckBox;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableColumn.CellDataFeatures;
import javafx.scene.control.TableView;
import javafx.scene.control.TextField;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.stage.Stage;
import javafx.util.Callback;
import transervfx.Dato.Entidad.Domicilio;
import transervfx.Dato.Entidad.Repartidor;
import transervfx.Dato.Entidad.ZonaRegional;
import transervfx.Vista.XML.pathRecusosFXML;
import utilidades.number.IntegerTextField;

/**
 * FXML Controller class
 *
 * @author meli
 */
public class VerRepartidor extends VentanaModal {

  
    
    //Datos personales
    @FXML
    private TextField apellido;
    @FXML
    private TextField nombres;
    @FXML
    private TextField tipoDoc;
    @FXML
    private IntegerTextField nroDoc;
    

    @FXML
    private TextField calle;
    @FXML
    private IntegerTextField numero;
    @FXML
    private IntegerTextField piso;
    @FXML
    private TextField departamento;

    @FXML
    private TextField codigoPostal;
    
    @FXML
    private TextField localidad;
    @FXML
    private TextField provincia;
    @FXML
    private TextField pais;
    
    //Contacto
    @FXML
    private TextField telFijo1;
    @FXML
    private TextField telFijo2;
    @FXML
    private TextField telCelular1;
    @FXML
    private TextField telCelular2;
    @FXML
    private TextField email;
    
    //Datos fiscales
    @FXML
    private IntegerTextField cuit;
    @FXML
    private TextField condicionFrenteIva;
    
    //Servicio ofrecido
    @FXML
    private CheckBox externo;
    @FXML
    private TextField movilidad;
    
    @FXML
    private TableView<ZonaRegional> tableZonasAsignadas;
    
    @FXML
    private TableColumn tableColumLocalidad;
    @FXML
    private TableColumn tableColumZona;
    
    

    final ObservableList<ZonaRegional> dataSourceTablaZonasAsignadas = FXCollections.observableArrayList();
    
    private Repartidor repartidorView;
    private Domicilio domicilioView ;
    
    
    public VerRepartidor(Stage ventanaPadre,String titulo,int x, int y) {
        super( ventanaPadre, titulo, x,  y);
        init();
    }
    
        
    public VerRepartidor(Repartidor repartidorSeleccionado, ABMRepartidor ventanaPadre, String titulo, int x, int y) {
        super( ventanaPadre, titulo, x,  y);

        this.repartidorView = repartidorSeleccionado;
        this.domicilioView = repartidorSeleccionado.getDomicilio();

        init();
    }
    
    public void init() {
        
        this.apellido.setText(repartidorView.getApellido());
        this.nombres.setText(repartidorView.getNombres());
        this.tipoDoc.setText(repartidorView.getTipoDoc());
        this.nroDoc.setText(repartidorView.getNroDoc().toString());
        
    
        this.calle.setText(repartidorView.getDomicilio().getCalle());
        this.numero.setText(repartidorView.getDomicilio().getNumero().toString());
        this.departamento.setText(repartidorView.getDomicilio().getDepartamento());
        this.piso.setText(repartidorView.getDomicilio().getPiso().toString());
        this.localidad.setText(repartidorView.getDomicilio().getLocalidad().getNombre());
        this.provincia.setText(repartidorView.getDomicilio().getLocalidad().getProvincia().getNombre());
        this.pais.setText(repartidorView.getDomicilio().getLocalidad().getProvincia().getPais().getNombre());
     
        
        this.telFijo1.setText(repartidorView.getTelFijo1());
        this.telFijo2.setText(repartidorView.getTelFijo2());
        this.telCelular1.setText(repartidorView.getTelCelular1());
        this.telCelular2.setText(repartidorView.getTelCelular2());
        this.email.setText(repartidorView.getEmail());
        
        this.cuit.setText(repartidorView.getCuit().toString());
        this.condicionFrenteIva.setText(repartidorView.getCondicionFrenteIva());
        
        this.movilidad.setText(repartidorView.getMovilidad());
        
        //podes setear si es externo o no en el crear? ahora lo veo
        this.externo.setSelected(repartidorView.getExterno());
        
        List<ZonaRegional> listaZonas = repartidorView.getZonasRegionals();
        
        this.dataSourceTablaZonasAsignadas.addAll(listaZonas);
        
        this.setTablaZonasAsignadas();
    }    

    
    
    public void buttonAceptar() {       
        this.close();
    }
    
    public void buttonCancelar() {     
        this.close();
    }

    private void setTablaZonasAsignadas() {
        
        this.tableZonasAsignadas.setItems(this.dataSourceTablaZonasAsignadas);
        
        this.tableColumZona.setCellValueFactory(new PropertyValueFactory<ZonaRegional, String>("nombre"));

        this.tableColumLocalidad.setCellValueFactory(new Callback<CellDataFeatures<ZonaRegional, String>, ObservableValue<String>>() {
            public ObservableValue<String> call(CellDataFeatures<ZonaRegional, String> p) {
                // p.getValue() returns the Person instance for a particular TableView row
                return new SimpleStringProperty(p.getValue().getLocalidad().getNombre());
            }
        });
    }
    
     @Override
    URL getURLFXML() {
          return pathRecusosFXML.class.getResource("VerRepartidorFXML.fxml");
    }
}
